This invention relates to methods for incorporation of noise considerations during automatic circuit optimization.
In the context of digital circuits, noise is defined as any deviation of a signal from its stable value in those subintervals of time when it should otherwise be stable, as disclosed in the article by K. L. Shepard et al., "Noise in deep submicron digital design," IEEE International Conference on Computer-Aided Design, pp. 524-531, November 1996. Noise can cause a digital circuit to switch incorrectly and thus produce spurious results. Noise can also have adverse power, timing and reliability affects. Thus, the design and optimization of a circuit must take noise considerations into account.
Noise in digital circuits can be attributed to several sources such as leakage noise, charge-sharing noise, crosstalk noise, power supply noise, shot noise, thermal noise and flicker noise. Rigorous noise analysis and noise considerations during design are becoming increasingly important. The following trends in modern digital integrated circuit design accentuate the need for careful and detailed consideration of noise during circuit design and optimization: (1) supply voltages are being lowered, leading to smaller margins for noise; (2) transistor threshold voltages are being lowered, leading to higher levels of leakage noise; (3) circuits are being packed closer together, leading to more coupling and cross-talk noise; (4) signals have faster rise and fall times, leading to more power supply noise; and (5) the increased use of dynamic circuitry for performance reasons increases the susceptibility to noise problems.
When a circuit is optimized, noise must be considered in addition to such criteria as delay, power and area. The mathematical expression of noise considerations in circuit optimization is in the form of a nonlinear semi-infinite problem, a class of problems that is harder to solve than standard nonlinear optimization problems. In addition, the number of signals that must be checked for noise violations and the number of sub-intervals of time during which these checks must be performed are potentially very large. Hence, the incorporation of noise constraints and objective functions during practical circuit optimization is difficult and, hitherto, an unsolved problem.